package xymt.novaway.system.domain.vo;

import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * 菜单权限视图对象
 * 用于返回可选的菜单和接口权限列表
 *
 * @author NovaWay
 */
@Data
public class MenuPermissionVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 菜单ID
     */
    private Long menuId;

    /**
     * 菜单名称
     */
    private String menuName;

    /**
     * 菜单路径
     */
    private String path;

    /**
     * 组件路径
     */
    private String component;

    /**
     * 菜单下的权限列表
     */
    private List<PermissionInfo> permissions;

    /**
     * 权限信息内部类
     */
    @Data
    public static class PermissionInfo implements Serializable {

        @Serial
        private static final long serialVersionUID = 1L;

        /**
         * 权限标识
         */
        private String permission;

        /**
         * 权限名称
         */
        private String permissionName;

        /**
         * 权限类型（如：list、add、edit、remove等）
         */
        private String permissionType;

    }

}